﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
using WR.BL.BE;
using WR.BL.BCC;

namespace WR.UI.MobWebApp
{
    public partial class cproforma : System.Web.UI.Page
    {
        private UserBE _objUsr;
        private void checkLogin()
        {
            lblErrorMsg.InnerHtml = string.Empty;
            _objUsr = (UserBE)Session["UserBE"];
            if (_objUsr == null)
            {
                Response.Redirect("login.aspx");
            }
        }

        private void cargarCombos()
        {
            List<GenericBE> lstRegiones = (List<GenericBE>)Session["lstRegiones"];
            if (lstRegiones == null || lstRegiones.Count == 0)
            {
                lstRegiones = SalesOrderBC.getInstance(Session.SessionID).getRegiones();
                Session["lstRegiones"] = lstRegiones;
            }
            lbRegiones.DataSource = lstRegiones;
            lbRegiones.DataBind();
        }

        protected void Page_Load(object sender, EventArgs e)
        {            
            string retVal = string.Empty;
            try
            {
                this.checkLogin();
                
                if (!Page.IsPostBack)
                {
                    this.cargarCombos();
                    SalesOrderBE objSO = null;
                    
                    // Obtener pedido de sesión
                    objSO = (SalesOrderBE)Session["SalesOrderBE"];
                    if (objSO == null) { objSO = new SalesOrderBE(); }

                    //-- asignar siempre tienda (se asume que las consultas son siempre sobre la tienda seleccionada)
                    _objUsr = (UserBE)Session["UserBE"];
                    objSO.Usuario.Tienda = _objUsr.Tienda;

                    if (objSO.Cliente.Codigo != null)
                    {
                        txtNombre.Value = objSO.Cliente.nomCli;
                        txtDirec.Value = objSO.Cliente.direCli;
                        txtDistrito.Value = objSO.Cliente.cityCli;
                        txtCodPostal.Value = objSO.Cliente.poscodCli;
                        lbRegiones.Text = objSO.Cliente.regionCli;
                        txtTlfo.Value = objSO.Cliente.telefCli;
                        txtEmail.Value = objSO.Cliente.correoCli;
                        txtRucDni.Value = objSO.Cliente.rucdniCli;
                    }

                    Session["SalesOrderBE"] = objSO;
                }
            }
            catch (Exception ex)
            {
                lblErrorMsg.InnerHtml = ex.Message;
            }
        }

        protected void lnkDetalle_Click(object o, EventArgs e)
        {
            string retVal = string.Empty;
            try
            {
                SalesOrderBE objSO = (SalesOrderBE)Session["SalesOrderBE"];
                if (objSO == null)
                {
                    objSO = new SalesOrderBE();
                }
                
                objSO.Cliente.nomCli = txtNombre.Value;
                objSO.Cliente.direCli = txtDirec.Value;
                objSO.Cliente.poscodCli = txtCodPostal.Value;
                objSO.Cliente.cityCli = txtDistrito.Value;
                objSO.Cliente.regionCli = lbRegiones.SelectedValue.Trim();
                objSO.Cliente.telefCli = txtTlfo.Value;
                objSO.Cliente.correoCli = txtEmail.Value;
                objSO.Cliente.rucdniCli = txtRucDni.Value;
              
                Session["SalesOrderBE"] = objSO;

                Response.Redirect("crearcot.aspx");//?cid=" + objSO.Cliente.Codigo);
            
            }
            catch (Exception ex)
            {
                retVal = ex.Message;
            }
            lblErrorMsg.InnerHtml = retVal;
        }
    }
}
